欢迎关注我的公众号 [极智视界],回复001获取Google编程规范
O_o
>_<
o_O
O_o
~_~
o_O
本文介绍一下 Tengine 模型转换及量化流程。
Tengine 同 ncnn 一样&#xff0c;也是优秀的端侧推理框架&#xff0c;前面写过一篇《ncnn 模型转换及量化流程》&#xff0c;有兴趣的同学可以查阅。
下面开始。
文章目录
- 1、编译 Tengine Tools
- 2、Tengine 模型转换
- 3、Tengine 量化推理
1、编译 Tengine Tools
CmakeList.txt 中打开 CONVERT_TOOL 和 QUANT_TOOL 开关&#xff1a;
开始编译&#xff1a;
cd <Tengine-path>
mkdir buildcd build
camke ..
make -j32
make install
编译完会在 ./build/install/bin/
目录下生成 convert_tool
和 quant_tool
&#xff0c;如下&#xff1a;
2、Tengine 模型转换
用如下命令看一下 convert_tool
需要什么样的传参&#xff1a;
cd ./build/install/bin./convert_tool -h
如上&#xff0c;前面为输入&#xff0c;后面为输出。
Tengine 提供的模型转换工具前端支持的十分丰富&#xff0c;基本通吃了国外、国内主流的深度学习框架。
前端为 Caffe&#xff1a;
./convert_tool -f caffe -p ./mobilenet.prototxt -m ./mobilenet.caffemodel -o ./mobilenet.tmfile
前端为 Onnx&#xff1a;
./convert_tool -f onnx -m ./mobilenet.onnx -o ./mobilenet.tmfile
前端为 Mxnet&#xff1a;
./convert_tool -f mxnet -p ./mobilenet.params -m ./mobilenet.json -o ./mobilenet.tmfile
前端为 Darknet&#xff1a;
./convert_tool -f darknet -p ./yolov3.weights -m ./yolov3.cfg -o yolov3.tmfile
前端为 TensorFlow&#xff1a;
./convert_tool -f tensorflow -m mobielenet_v1_1.0_224_frozen.pb -o mobilenet.tmfile
前端为 TFLite&#xff1a;
./convert_tool -f tflite -m mobielenet.tflite -o mobilenet.tmfile
前端为 MegEngine&#xff1a;
./convert_tool -f megengine -m mobilenet.pkl -o mobilenet.tmfile
前端为 OneFlow&#xff1a;
./convert_tool -f oneflow -p mobilenet.prototxt -m mobilenet/ -o mobilenet.tmfile
前端为 ncnn&#xff1a;
./convert_tool -f ncnn -p mobilenet.param -m mobilenet.bin -o mobilenet.tmfile
3、Tengine 量化推理
可以看到 Tengine 提供的量化工具有三个&#xff1a;quant_tool_int8
、quant_tool_uint8
、quant_tool_uint8_perchannel
&#xff0c;分别是对称量化、非对称量化、非对称逐通道量化&#xff0c;里面的量化策略类似&#xff0c;这里挑 quant_tool_int8
说一下。
先安装一下依赖库&#xff1a;
apt update
apt install libopencv-dev
用如下命令查看量化工具传参&#xff1a;
./quant_tool_int8 -h
可以看到传参还是比较丰富的。
前端输入为 fp32 tmfile&#xff0c;执行量化示例&#xff1a;
./quant_tool_int8 -m ./mobilenet_fp32.tmfile -i ./dataset -o ./mobilenet_int8.tmfile -g 3,224,224 -w 104.007,116.669,122.679 -s 0.017,0.017,0.017
执行成功会输出如下日志&#xff1a;
并生成如下 int8 模型文件&#xff1a;
然后就可以拿去执行推理了。
以上分享了 Tengine 模型转换及量化方法&#xff0c;希望我的分享能对你的学习有一点帮助。
【公众号传送】
《【模型推理】Tengine 模型转换及量化》
扫描下方二维码即可关注我的微信公众号【极智视界】&#xff0c;获取更多AI经验分享&#xff0c;让我们用极致&#43;极客的心态来迎接AI &#xff01;